bitkeeper revision 1.7 (3debbf6e3uTST4qTwK-s500qgDGA7A)
authorkaf24@striker.cl.cam.ac.uk <kaf24@striker.cl.cam.ac.uk>
Mon, 2 Dec 2002 20:15:42 +0000 (20:15 +0000)
committerkaf24@striker.cl.cam.ac.uk <kaf24@striker.cl.cam.ac.uk>
Mon, 2 Dec 2002 20:15:42 +0000 (20:15 +0000)
domain.c, setup.c:
  SMP fix

BitKeeper/etc/logging_ok
xen-2.4.16/arch/i386/setup.c
xen-2.4.16/common/domain.c

index afc0ddebd9af1398ad11571c0995ebd4c2746db3..825b553426823a9693f2fdc51117099dbdc3b634 100644 (file)
@@ -1,3 +1,4 @@
 akw27@boulderdash.cl.cam.ac.uk
 kaf24@plym.cl.cam.ac.uk
+kaf24@striker.cl.cam.ac.uk
 smh22@boulderdash.cl.cam.ac.uk
index 5b5c73f640f6ac9051dcc38972d19376e14efa38..f9163148ed741062824cd99535ce27b7f66aaa94 100644 (file)
@@ -295,8 +295,6 @@ void __init start_of_day(void)
     init_bh(IMMEDIATE_BH, immediate_bh);
     init_apic_mappings(); /* make APICs addressable in our pagetables. */
 
-    sti();
-
 #ifndef CONFIG_SMP    
     APIC_init_uniprocessor();
 #else
@@ -308,6 +306,8 @@ void __init start_of_day(void)
                       */
 #endif
 
+    sti();
+
     zap_low_mappings();
     kmem_cache_init();
     kmem_cache_sizes_init(max_page);
index 51d9209778fc76007c4df59bc0e73c24a1806fbd..a1d5de21c9ad45b69b3b88e1e209a89c9dc14809 100644 (file)
@@ -35,6 +35,7 @@ struct task_struct *do_newdomain(void)
 {
     int retval;
     struct task_struct *p = NULL;
+    unsigned long flags;
 
     retval = -ENOMEM;
     p = alloc_task_struct();
@@ -56,9 +57,9 @@ struct task_struct *do_newdomain(void)
     p->blk_ring_base = (blk_ring_t *)(p->shared_info + 1);
     p->net_ring_base = (net_ring_t *)(p->blk_ring_base + 1);
     p->pg_head = p->tot_pages = 0;
-    write_lock_irq(&tasklist_lock);
+    write_lock_irqsave(&tasklist_lock, flags);
     SET_LINKS(p);
-    write_unlock_irq(&tasklist_lock);
+    write_unlock_irqrestore(&tasklist_lock, flags);
 
  newdomain_out:
     return(p);